#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;

// A function object that computes a reciprocal.
class reciprocal : unary_function<double, double> {
public:
  result_type sum;

result_type operator()(argument_type val) {
    if(val == 0.0) return 0.0;
    return 1.0 / val; // return reciprocal
  }
};

int main(){
  int i;

  vector<double> v;
  for(i=1; i < 10; ++i) v.push_back((double)i);

  vector<double> v2(10);
  transform(v.begin(), v.end(), v2.begin(), reciprocal());

  return 0;
}
